package com.sakura.哈希表;

import java.util.HashMap;

public class Code454_四数相加II {

    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        HashMap<Integer, Integer> map = new HashMap<>();
        // 遍历nums1和nums2，计算nums1[i] + nums2[j]，并把结果存入map中，如果map中已经存在该结果，则将值加1
        // 记录 nums1[i] + nums2[j] 的次数
        for (int i : nums1) {
            for (int j : nums2) {
                map.merge(i + j, 1, Integer::sum);
            }
        }
        int ans = 0;
        // 遍历nums3和nums4，计算 -(nums3[i] + nums4[j])，如果map中存在该结果，则将ans加上map中该结果的值
        for (int i : nums3) {
            for (int j : nums4) {
                if (map.containsKey(-(i + j))) {
                    ans += map.get(-(i + j));
                }
            }
        }
        return ans;
    }
}
